package com.peak.spring.boot.tools;

import java.util.Arrays;
import java.util.stream.Collectors;

/**
 * Date format的格式列表
 * 
 * @author gaofeng
 *
 */
public enum DatePattern {

	SHORT_LINE("yyyy-MM-dd")
	,SHORT_LINE_TIME("yyyy-MM-dd HH:mm:ss")
	,SLASH_LINE("MM/dd/yyyy")
	,SLASH_LINE_TIME("MM/dd/yyyy HH:mm:ss")
	,CHINESE_CHAR("yyyy年MM月dd日")
	,CHINESE_CHAR_TIME("yyyy年MM月dd日 HH时mm分ss秒")
	,CHINESE_SLASH_LINE("yyyy/MM/dd")
	,CHINESE_SLASH_LINE_TIME("yyyy/MM/dd HH:mm:ss")
	,NO_LINE_DATE("yyyyMMdd")
	,NO_LINE_DATE_TIME("yyyyMMddHHmmss")
	,NO_LINE_TIME("HHmmss")
	,NO_LINE_TIME_MILLISECOND("HHmmssSSS")
	, CHINESE_SLASH_LINE_NO_DAY("yyyy/MM")
	;
	
	private String partten;
	
	public String getPartten() {
		return partten;
	}

	DatePattern(String partten) {
		this.partten = partten;
	}
	
	public static DatePattern parttenOf(final String partten) {
		return Arrays.stream(DatePattern.values()).filter(p -> p.partten.equals(partten)).findFirst()
				.orElse(DatePattern.SHORT_LINE_TIME);
	}

	public static String[] getParttens() {
		return Arrays.stream(DatePattern.values()).map(p -> p.partten).collect(Collectors.toList()).toArray(new String[0]);
	}
}
